# coding=utf-8

'''
Created on 30/03/2011

@author: matheus
'''

'''
Exercício 26. Escreva a função calcula(x, y, z) que recebe dois operandos (x e y) e realiza a operação 
codificada em z através dos seguintes valores: “add” - Adição, “sub” - Subtração, “mult” - Multiplicação 
e “div” - Divisão. A sua função deve retornar None quando houver uma divisão por zero ou o código da 
operação não existir. Os asserts abaixo complementam a especificação do funcionamento da função.
'''

def calcula(x, y, z):
    if z == "add":
        return x + y
    elif z == "sub":
        return x - y
    elif z == "mult":
        return x * y
    elif z == "div" and y != 0:
        return x / y 
    else:
        return None
    
assert calcula(2, 2, "add") == 4
assert calcula(2, 2, "sub") == 0
assert calcula(2, 2, "mult") == 4
assert calcula(2, 2, "div") == 1
assert calcula(10, 3, "div") == 3
assert calcula(2, 0, "div") == None
assert calcula(0, 2, "div") == 0
assert calcula(2, 2, "abc") == None